extensions: speed up 8bit gray scale for GIMP
authorØyvind Kolås <pippin@gimp.org>
Fri, 9 Dec 2016 13:26:31 +0000 (14:26 +0100)
committerØyvind Kolås <pippin@gimp.org>
Fri, 9 Dec 2016 13:26:31 +0000 (14:26 +0100)
extensions/gimp-8bit.c

index d3e952250a8b43cdda5ee3c52896cc73cb7295d5..55bd95c5ebf0e6060cf9100b1569325292d6ab0a 100644 (file)
@@ -228,6 +228,24 @@ conv_ga8_gamma_2_2_gaF_linear (unsigned char *src,
   return samples;
 }
 
+static INLINE long
+conv_ga8_gamma_2_2_rgba8_gamma_2_2 (unsigned char *src,
+                                    unsigned char *dst,
+                                    long           samples)
+{
+  long   n = samples;
+
+  while (n--)
+    {
+      *dst++ = *src;
+      *dst++ = *src;
+      *dst++ = *src++;
+      *dst++ = *src++;
+    }
+
+  return samples;
+}
+
 static INLINE long
 conv_ga8_linear_rgbaF_linear (unsigned char *src,
                               unsigned char *dst,
@@ -496,6 +514,8 @@ init (void)
   o (ga8_linear, rgbaF_linear);
   o (ga8_gamma_2_2, rgbaF_linear);
 
+  o (ga8_gamma_2_2, rgba8_gamma_2_2);
+
   o (g8_linear, gF_linear);
   o (g8_gamma_2_2, gF_linear);
   o (g8_linear, rgbaF_linear);